﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using CapaEntidades;

namespace CapaDatos
{
    public class datRepote
    {
        #region "Singleton"
        private static readonly datRepote _instancia = new datRepote();
        public static datRepote Instancia
        {
            get { return datRepote._instancia; }
        }
        #endregion

        #region "Metodos"
        public List<entPersona> MejoresClientes(String FechaIncio, String FechaFin)
        {
            SqlCommand cmd = null;
            SqlDataReader dr = null;
            List<entPersona> Lista = null;
            try
            {
                SqlConnection conex = Conexion.Instancia.Conectar();
                cmd = new SqlCommand("spReporteClientesMasFrecuentes", conex);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@prmFechaInicio", FechaIncio);
                cmd.Parameters.AddWithValue("@prmFechaFin", FechaFin);
                conex.Open();
                dr = cmd.ExecuteReader();
                Lista = new List<entPersona>();
                while (dr.Read())
                {
                    entPersona p = new entPersona();
                    p.Nombres = dr["NOMBRES"].ToString();
                    p.Apellidos = dr["APELLIDOS"].ToString();
                    p.Correo = dr["CORREO"].ToString();
                    p.NroDocumento = dr["NRODOCUMENTO"].ToString();
                    p.Telefono = dr["TELEFONO"].ToString();
                    p.Total = Convert.ToDouble(dr["TOTALPAGADO"]);
                    p.CantReservas = Convert.ToInt32(dr["TOTALRESERVAS"]);
                    Lista.Add(p); 
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                cmd.Connection.Close();
            }
            return Lista;
        }
        #endregion
    }
}
